﻿using System;
using System.Collections.Generic;
using System.Text;

namespace WodLib
{
    [Serializable()]
    public class Human : Animal
    {
        public override int Defense
        {
            get
            {
                return Math.Min(Attributes.Dexterity.CurrentValue, Attributes.Witts.CurrentValue);
            }
        }

        #region HumanTraits
        [System.ComponentModel.Category(Config.DescriptionConsts.Info)]
        public int Age
        {
            get;
            set;
        }

        [System.ComponentModel.Category(Config.DescriptionConsts.Info)]
        public string Player
        {
            get;
            set;
        }

        [System.ComponentModel.Category(Config.DescriptionConsts.Info)]
        public string Concept
        {
            get;
            set;
        }

        [System.ComponentModel.Category(Config.DescriptionConsts.Info)]
        public string Virtue
        {
            get;
            set;
        }

        [System.ComponentModel.Category(Config.DescriptionConsts.Info)]
        public string Vice
        {
            get;
            set;
        }

        [System.ComponentModel.Category(Config.DescriptionConsts.OtherTraits)]
        public string[] Flaws
        {
            get;
            set;
        } 
        #endregion

        [System.ComponentModel.Category(Config.DescriptionConsts.Traits)]
        public List<Merit> Mertis
        {
            get;
            set;
        }

        [System.ComponentModel.Category(Config.DescriptionConsts.Traits)]
        public HumanMorality Morality
        {
            get;
            set;
        }

        [System.ComponentModel.Category(Config.DescriptionConsts.OtherTraits)]
        public int Experience
        {
            get;
            set;
        }

        public Human():base()
        {
            this.Attributes.Composure.Dots = 1;
            this.Attributes.Dexterity.Dots = 1;
            this.Attributes.Inteligence.Dots = 1;
            this.Attributes.Manipulation.Dots = 1;
            this.Attributes.Presence.Dots = 1;
            this.Attributes.Stamina.Dots = 1;
            this.Attributes.Strength.Dots = 1;
            this.Attributes.Witts.Dots = 1;
            this.Attributes.Resolve.Dots = 1;

            this.Morality = new HumanMorality();

            this.Size = 5;
            this.SpeedSpieciesFactor = 5;

            this.Mertis = new List<Merit>();
        }
    }
}
